02 / 07

What is the default access modifier for a class in Java/C#?

Difficulty: 2/10

Default Class Accessibility

The answer differs between Java and C#. In Java, a top-level class with no modifier has package-private accessibility, meaning it is accessible only within the same package. A nested Java class follows member access rules. In C#, a top-level class defaults to internal accessibility, while a nested class defaults to private when no access modifier is specified. This distinction is important when designing module and assembly boundaries.

javascript
  1. 1

    Java top-level class without a modifier: package-private.

  2. 2

    C# top-level class without a modifier: internal.

  3. 3

    Java and C# have different defaults for nested types.

  4. 4

    Explicit visibility is often preferable for public APIs because it makes intent clear.

Follow-up Questions

  • What is the default access modifier for a Java interface?
  • What is the default access modifier for a C# nested class?
  • What is package-private in Java?
  • What is internal in C#?
Share

Share via WhatsApp, X, Facebook, LinkedIn or copy link. Open Graph preview enabled.